//-------------------------------------------------------------------
//	Copyright (c) 2010-2014  Zhirnov Andrey
//	This file is part of the "UX Standard Lib" project.
//	See copyright notice in "UX_Script.h".
//-------------------------------------------------------------------

#ifndef _UXS_DEFAULT_SCRIPT_BINDINGS_H
#define _UXS_DEFAULT_SCRIPT_BINDINGS_H

#pragma once

#include "ScriptBinder.h"

namespace UX_STL
{
namespace UXScript
{
	

	//
	// Vector
	//
	UX_DECL_SCRIPT_TYPE( UXMath::bvec2, "bvec2" );
	UX_DECL_SCRIPT_TYPE( UXMath::ivec2,	"ivec2" );
	//UX_DECL_SCRIPT_TYPE( UXMath::uvec2,	"uvec2" );
	UX_DECL_SCRIPT_TYPE( UXMath::lvec2,	"lvec2" );
	UX_DECL_SCRIPT_TYPE( UXMath::fvec2,	"fvec2"  );
	UX_DECL_SCRIPT_TYPE( UXMath::dvec2,	"dvec2" );
	
	UX_DECL_SCRIPT_TYPE( UXMath::bvec3, "bvec3" );
	UX_DECL_SCRIPT_TYPE( UXMath::ivec3,	"ivec3" );
	//UX_DECL_SCRIPT_TYPE( UXMath::uvec3,	"uvec3" );
	UX_DECL_SCRIPT_TYPE( UXMath::lvec3,	"lvec3" );
	UX_DECL_SCRIPT_TYPE( UXMath::fvec3,	"fvec3"  );
	UX_DECL_SCRIPT_TYPE( UXMath::dvec3,	"dvec3" );
	
	UX_DECL_SCRIPT_TYPE( UXMath::bvec4, "bvec4" );
	UX_DECL_SCRIPT_TYPE( UXMath::ivec4,	"ivec4" );
	//UX_DECL_SCRIPT_TYPE( UXMath::uvec4,	"uvec4" );
	UX_DECL_SCRIPT_TYPE( UXMath::lvec4,	"lvec4" );
	UX_DECL_SCRIPT_TYPE( UXMath::fvec4,	"fvec4"  );
	UX_DECL_SCRIPT_TYPE( UXMath::dvec4,	"dvec4" );


	//
	// Default Bindings
	//

	struct UX_EXPORT DefaultBindings
	{
		static void BindMath (AngelScript::asIScriptEngine *se);

		static void BindVector (AngelScript::asIScriptEngine *se);
		static void BindVectorMath (AngelScript::asIScriptEngine *se);
	};
	
//-------------------------------------------------------------------

}	// UXScript
}	// UX_STL

#endif	// _UXS_DEFAULT_SCRIPT_BINDINGS_H